package com.copa.l202;

import java.util.HashSet;
import java.util.Set;

/**
 * @author copa
 * @createDate 2022-08-29 16:34
 * @function set集合记录重复数
 */
public class Test1 {

    public boolean isHappy(int n) {
        // 这里我是看了测试用例才觉得需要这个，于是加上去了，记录遍历过的数
        Set<Integer> repeatSet = new HashSet<>();
        int temp;
        while (n != 1) {
            temp = 0;
            char[] chars = String.valueOf(n).toCharArray();
            for (char c : chars) {
                temp += Math.pow(c - '0', 2);
            }
            if (repeatSet.contains(temp)) {
                // 如果遍历过了直接返回，因为已经是无限循环了
                return false;
            }
            // 没遍历过的记录一下
            repeatSet.add(temp);
            n = temp;
        }
        return true;
    }

    public static void main(String[] args) {
        System.out.println(new Test1().isHappy(7));
    }
}
